﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Inventario_HardSoft.ADO;
using Inventario_HardSoft.Controlador;

namespace Inventario_HardSoft.Presentacion
{
     

    public partial class Registro_Usuario : Form
    {
        private Ctrl_Reg_Usu controlador;
        private Ctrl_Empr_Nombr empresaN;
        private Ctrl_Reg_Sucursal controlaSucursal;
        public String usuarionombre ;


        public Registro_Usuario()
        {
            InitializeComponent();
            controlador = new Ctrl_Reg_Usu();
            empresaN = new Ctrl_Empr_Nombr();
            controlaSucursal = new Ctrl_Reg_Sucursal(); 
       }
        public static String[] datos = new String[4];
        public static int i=0;
        private void Registro_Usuario_Load(object sender, EventArgs e)
        {
            cb_Empresa.DropDownStyle = ComboBoxStyle.DropDownList;
            cb_Sucursal_Departamento.DropDownStyle = ComboBoxStyle.DropDownList;
        }

        private void btn_Agregar_Click(object sender, EventArgs e)
        {
             
            
            // Registro de terceros
            if (checkBoxTercero.Checked)
            {
                Usuario u = new Usuario();
                u.oficina = cb_Sucursal_Departamento.Text;
                u.nombre = txt_Nombre_Usuario.Text;
                u.correo = txt_Correo.Text;
                u.idempresa = cb_Empresa.Text;
                u.departamento = txt_Area_Departamento.Text;
                u.usuariowindows = txt_Usuario_Windows.Text;
                u.usuariodbs = txt_Usuario_AS.Text;
                u.codigorrhh = txt_Codigo_Empleado.Text;
                u.telefono = txt_Telefono.Text;
                u.anexo = txt_Anexo.Text;
                u.celular = txt_Celular.Text;
                u.rpc = txt_RPC.Text;
                u.rpm = txt_RPM.Text;
                u.nextel = txt_Nextel.Text;
                u.ususistemas = txt_Usu.Text;
                u.passsistemas = txt_Pass.Text;
                //Registra terceros (Reparador = 2) ..(2 =  a un tercero)
                controlador.IngresarUsuario(u, 2);
                MessageBox.Show("Tercero Registrado Correctamente");
                limpia();
            }

            else
            {
                //Registro de Usuarios y AsistentesReparadores
                // verifica si es asistente y si sus datos han sido ingresados...          
                //verifico si ingreso sus datos respecto a la empresa donde labora 
                if (!string.IsNullOrWhiteSpace(txt_Nombre_Usuario.Text))
                {
                    if (cb_Empresa.SelectedIndex >= 0)
                    {
                        if (cb_Sucursal_Departamento.SelectedIndex >= 0)
                        {
                            if (!string.IsNullOrWhiteSpace(txt_Area_Departamento.Text))
                            {
                                if (!string.IsNullOrWhiteSpace(txt_Usuario_Windows.Text))
                                {
                                    if (cb_Empresa.SelectedIndex >= 0 & cb_Sucursal_Departamento.SelectedIndex >= 0 & chb_Sistema.Checked == false)
                                    {
                                        Usuario u = new Usuario();
                                        u.oficina = cb_Sucursal_Departamento.Text;
                                        u.nombre = txt_Nombre_Usuario.Text;
                                        u.correo = txt_Correo.Text;
                                        u.idempresa = cb_Empresa.Text;
                                        u.departamento = txt_Area_Departamento.Text;
                                        u.usuariowindows = txt_Usuario_Windows.Text;
                                        u.usuariodbs = txt_Usuario_AS.Text;
                                        u.codigorrhh = txt_Codigo_Empleado.Text;
                                        u.telefono = txt_Telefono.Text;
                                        u.anexo = txt_Anexo.Text;
                                        u.celular = txt_Celular.Text;
                                        u.rpc = txt_RPC.Text;
                                        u.rpm = txt_RPM.Text;
                                        u.nextel = txt_Nextel.Text;
                                        u.ususistemas = txt_Usu.Text;
                                        u.passsistemas = txt_Pass.Text;
                                        //registramos el usuario en la Base de Datos
                                        if (chb_Sistema.Checked)
                                        {
                                            controlador.IngresarUsuario(u, 1);
                                            MessageBox.Show("Asistente Registrado Correctamente");
                                            limpia();
                                        }
                                        else
                                        {
                                            controlador.IngresarUsuario(u, 0);
                                            MessageBox.Show("Usuario Registrado Correctamente");
                                            limpia();
                                        }
                                    }
                                    ///////////////
                                    if (chb_Sistema.Checked)
                                    {
                                        if (string.IsNullOrWhiteSpace(txt_Usu.Text) || string.IsNullOrWhiteSpace(txt_Pass.Text))
                                        {
                                            MessageBox.Show("Complete los Datos para el Usuario de Sistema");
                                            txt_Nombre_Usuario.Focus();
                                        }
                                    }
                                    ///////////////
                                    if (cb_Empresa.SelectedIndex >= 0 & cb_Sucursal_Departamento.SelectedIndex >= 0 & chb_Sistema.Checked == true & !string.IsNullOrWhiteSpace(txt_Usu.Text) & !string.IsNullOrWhiteSpace(txt_Pass.Text))
                                    {
                                        Usuario u = new Usuario();
                                        u.oficina = cb_Sucursal_Departamento.Text;
                                        u.nombre = txt_Nombre_Usuario.Text;
                                        u.correo = txt_Correo.Text;
                                        u.idempresa = cb_Empresa.Text;
                                        u.departamento = txt_Area_Departamento.Text;
                                        u.usuariowindows = txt_Usuario_Windows.Text;
                                        u.usuariodbs = txt_Usuario_AS.Text;
                                        u.codigorrhh = txt_Codigo_Empleado.Text;
                                        u.telefono = txt_Telefono.Text;
                                        u.anexo = txt_Anexo.Text;
                                        u.celular = txt_Celular.Text;
                                        u.rpc = txt_RPC.Text;
                                        u.rpm = txt_RPM.Text;
                                        u.nextel = txt_Nextel.Text;
                                        u.ususistemas = txt_Usu.Text;
                                        u.passsistemas = txt_Pass.Text;
                                        //registramos el usuario en la Base de Datos
                                        if (chb_Sistema.Checked)
                                        {
                                            controlador.IngresarUsuario(u, 1);
                                            MessageBox.Show("Usuario Registrado Correctamente");
                                            limpia();
                                        }
                                        else
                                        {
                                            controlador.IngresarUsuario(u, 0);
                                            MessageBox.Show("Usuario Registrado Correctamente");
                                            limpia();
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Ingrese usuario windows");
                                    txt_Usuario_Windows.Focus();
                                }
                            }
                            else
                            {
                                MessageBox.Show("Ingrese area");
                                txt_Area_Departamento.Focus();
                            }
                        }
                        else
                        {
                            MessageBox.Show("Seleccione sucursal");
                            cb_Sucursal_Departamento.Focus();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Seleccione empresa");
                        cb_Empresa.Focus();
                    }
                }
                else
                {
                    MessageBox.Show("Ingrese nombre");
                    txt_Nombre_Usuario.Focus();
                }
            }
        }

       
    private void limpia() 
    {
        // limpia txt's y combos
        cb_Sucursal_Departamento.SelectedIndex=-1;
        txt_Nombre_Usuario.Text = "";
        txt_Correo.Text = "";
        cb_Empresa.Items.Clear();
        txt_Area_Departamento.Text = "";
        txt_Usuario_Windows.Text = "";
        txt_Usuario_AS.Text = "";
        txt_Codigo_Empleado.Text = "";
        txt_Telefono.Text = "";
        txt_Anexo.Text = "";
        txt_Usu.Text = "";
        txt_Pass.Text = "";
        txt_Celular.Text = "";
        txt_RPC.Text = "";
        txt_RPM.Text = "";
        txt_Nextel.Text = "";
        chb_Sistema.CheckState = CheckState.Unchecked;
        checkBoxTercero.CheckState = CheckState.Unchecked;
        gb_Sistemas.Visible = false;     
    }

    private void cb_Empresa_DropDown(object sender, EventArgs e)
    { 
        //limpiamos el combo
        cb_Empresa.Items.Clear();
        //vas a llenar el listbox, llamar a la base de datos
        List<EMPRESA> reparadores = empresaN.getList_empresaNombr();
            foreach (EMPRESA r in reparadores) //recorre cada elemento de label1 lista
            {
                cb_Empresa.Items.Add(r.NOMBREEMPRESA.ToString());
               
            }
        
    }

    private void chb_Sistema_CheckedChanged_1(object sender, EventArgs e)
    {
        if (chb_Sistema.Checked)
        {
            gb_Sistemas.Visible = true;
            checkBoxTercero.Enabled = false;
            checkBoxTercero.CheckState = CheckState.Unchecked;
        }
        else
        {
            gb_Sistemas.Visible = false;
            checkBoxTercero.Enabled = true;
            checkBoxTercero.CheckState = CheckState.Unchecked;
        } 
    }

    private void btn_Cerrar_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBoxTercero.Checked)
        {
            cb_Sucursal_Departamento.Enabled = false;
            txt_Area_Departamento.Enabled = false;
            txt_Usuario_AS.Enabled = false;
            txt_Usuario_Windows.Enabled = false;
            txt_Usuario_Windows.Enabled = false;
            txt_Codigo_Empleado.Enabled = false;
            chb_Sistema.Enabled = false;
            chb_Sistema.CheckState = CheckState.Unchecked;
        }
        else 
        {
            cb_Sucursal_Departamento.Enabled = true;
            txt_Area_Departamento.Enabled = true;
            txt_Usuario_AS.Enabled = true;
            txt_Usuario_Windows.Enabled = true;
            txt_Usuario_Windows.Enabled = true;
            txt_Codigo_Empleado.Enabled = true;
            chb_Sistema.Enabled = true;
            chb_Sistema.CheckState = CheckState.Unchecked;
        }
    }

    private void grup_Datos_Trabajador_Enter(object sender, EventArgs e)
    {

    }

    private void btn_Examinar_Click(object sender, EventArgs e)
    {
        txt_Nombre_Usuario.Text = "";        
        Buscar_Usuario bUsuario = new Buscar_Usuario();
        DialogResult dr = bUsuario.ShowDialog(this);
        switch (dr)
        {
            case DialogResult.OK:
                txt_Nombre_Usuario.Text = bUsuario.user.NOMBRE;
                txt_Nombre_Usuario.Tag = bUsuario.user.IDUSUARIO;
                usuarionombre = txt_Nombre_Usuario.Text;
                break;
            case DialogResult.Cancel:
                txt_Nombre_Usuario.Text = string.Empty;
                break;
        }
        modifica();
    }

    private void modifica()
    {
        List<USUARIO> usuarios = controlador.buscaDatadelUsuario(usuarionombre);
    }

    private void cb_Empresa_SelectionChangeCommitted(object sender, EventArgs e)
    { 
        //selecciono empresa y de acuerdo a la empresa se muestran sus sucursales q' tiene
        cb_Sucursal_Departamento.DataSource = controlaSucursal.ListSucursalesxEmpresa(cb_Empresa.SelectedItem.ToString());
        cb_Sucursal_Departamento.SelectedIndex = -1;
    }

    private void cb_Sucursal_Departamento_DropDown(object sender, EventArgs e)
    {
      
    }
  }
}
